/**
 *  Module
 *
 * Description
 */
angular.module('webpageApp', [])
	.controller('webDocument', ['$scope', '$sce', 'Socket', '$compile', function(
		$scope, $sce,
		socket, $compile) {
		// $scope.getUrl = function(newUrl) {
		//
		// 	socket.emit('new url', {
		// 		url: newUrl
		// 	});
		//
		// 	// socket.on('new webpage', function(data){
		// 	// 	console.log('在这里');
		// 	// 	console.log(data);
		// 	// 	$scope.url = $sce.trustAsResourceUrl(data.url);
		// 	// });
		// };

		// 用于存放自增的id
		var ruleId = 0;
		// 用于存放当前规则
		$scope.current = {};
		// 用于存放整套规则
		$scope.ruleList = {
			_id: ruleId,
			name: '字段' + ruleId,
			children: []
		};
		// ruleId++;

		// 从某个父元素中删除某规则
		$scope.remove = function(parent, index) {
			parent.children.splice(index, 1);
		};

		// 选择当前规则
		$scope.choose = function(rule) {
			$scope.current = rule;
		};

		// 保存规则
		// $scope.save = function(rule) {
		// 	// $scope.chosen = rule;
		// };

		// 添加规则
		$scope.add = function(parent) {
			$scope.init();
			// if (parent == null) {
			// 	parent = $scope.ruleList;
			// }
			console.log(parent, 'parent');
			parent.children.push($scope.current);
			console.log($scope.current, 'add');
			// console.log($scope.ruleList);
		};

		$scope.init = function() {
			// var id = getId($scope.setList[$scope.setIndex].ruleList);
			// $scope.current._id = ruleId;
			// $scope.current.name = '字段' + ruleId;
			// $scope.current.list = [];
			ruleId++;
			$scope.current = {
				_id: ruleId,
				name: '字段' + ruleId,
				children: []
			};
			// ruleId++;
		};

		$scope.clear = function(field) {
			$scope.current[field] = '';
		};

		$scope.add($scope.ruleList);


		// 存放规则的集合
		// $scope.setList[setIndex].ruleList = [];
		// var ruleId = 0,
		// 	setId = 0;
		// $scope.current = {};
		// $scope.setIndex;
		// $scope.setList = [];
		// // 删除某一条规则
		// $scope.remove = function(index) {
		// 	// console.log(id, 'id');
		// 	$scope.setList[$scope.setIndex].ruleList.splice(index, 1);
		// };
		// // 保存规则
		// $scope.save = function(rule) {
		// 	if ($scope.isNew) {
		// 		$scope.add(angular.copy(rule));
		// 	} else {
		// 		$scope.update(angular.copy(rule));
		// 	}
		// };
		// // 增加规则
		// $scope.add = function(rule) {
		// 	// if (!$scope.path) {
		// 	// 	$scope.errMessage = '请先选择元素';
		// 	// 	return;
		// 	// }
		// 	// var id = getId();
		// 	// $scope.setList[setIndex].ruleList.push({
		// 	// 	_id: id,
		// 	// 	name: $scope.fieldName || '字段' + id,
		// 	// 	path: $scope.path
		// 	// });
		// 	$scope.setList[$scope.setIndex].ruleList.push(rule);
		// 	$scope.isNew = false;
		// 	ruleId++;
		// 	// $scope.path = '';
		// };
		// // 修改规则
		// $scope.update = function(rule) {
		// 	var i = findIndexById($scope.setList[$scope.setIndex].ruleList, rule._id);
		// 	$scope.setList[$scope.setIndex].ruleList[i] = angular.copy(rule);
		// };
		// // 重置规则
		// $scope.reset = function() {
		// 	var i = findIndexById($scope.setList[$scope.setIndex].ruleList, $scope.current
		// 		._id);
		// 	$scope.current = angular.copy($scope.setList[$scope.setIndex].ruleList[i]);
		// };
		// // 选择规则
		// $scope.choose = function(index) {
		// 	$scope.current = angular.copy($scope.setList[$scope.setIndex].ruleList[
		// 		index]);
		// 	$scope.isNew = false;
		// };
		// // 对每一条规则初始化
		// $scope.init = function() {
		// 	// var id = getId($scope.setList[$scope.setIndex].ruleList);
		// 	$scope.current._id = ruleId;
		// 	$scope.current.name = '字段' + ruleId;
		// };
		// $scope.$watch('isNew', function(v) {
		// 	if (v) {
		// 		$scope.init();
		// 	}
		// });
		//
		// // 新增集合
		// $scope.addSet = function() {
		// 	// var id = getId($scope.setList);
		// 	var set = {
		// 		_id: setId,
		// 		name: '集合' + setId,
		// 		ruleList: []
		// 	};
		// 	$scope.setList.push(set);
		// 	$scope.chooseSet($scope.setList.length - 1);
		// 	setId++;
		// };
		// // 删除集合
		// $scope.removeSet = function(index) {
		// 	// console.log(index, 'remove');
		// 	$scope.setList.splice(index, 1);
		// 	if ($scope.setList.length == 0) {
		// 		$scope.addSet();
		// 	}
		// };
		// // 选择某个集合
		// $scope.chooseSet = function(index) {
		// 	$scope.setIndex = index;
		// };
		// $scope.addSet();
		// $scope.init();
		// 生成新规则的id
		// function getId(arr) {
		// 	var new_id;
		// 	var len = arr.length;
		// 	if (len == 0) {
		// 		new_id = 1;
		// 	} else {
		// 		new_id = arr[len - 1]._id + 1;
		// 	}
		// 	return new_id;
		// }
		// 通过rule id找对应的rule index
		// function findIndexById(arr, id) {
		// 	var index;
		// 	for (var i = 0; i < arr.length; i++) {
		// 		if (id == arr[i]._id) {
		// 			index = i;
		// 			break;
		// 		}
		// 	}
		// 	return index;
		// }

	}])
	.factory('Socket', ['$rootScope', function($rootScope) {
		// var socket = io.connect();
		// console.log('socket connect');
		return {
			connect: function(url) {
				var socket = io.connect(url);
				if (socket) {
					return socket;
				}
			},
			on: function(socket, eventName, callback) {
				socket.on(eventName, function() {
					var args = arguments;
					$rootScope.$apply(function() {
						callback.apply(socket, args);
					});
				});
			},
			emit: function(socket, eventName, data, callback) {
				socket.emit(eventName, data, function() {
					var args = arguments;
					$rootScope.$apply(function() {
						if (callback) {
							callback.apply(socket, args);
						}
					});
				})
			}
		};
	}])
